Modern computing devices have become ubiquitous tools for personal, business, and social uses. As such, many modern computing devices are capable of connecting to various data networks, including the Internet, to transmit and receive data communications over the various data networks at varying rates of speed. To facilitate communications between computing devices, the data networks typically include one or more network computing devices (e.g., compute servers, storage servers, etc.) to route communications (e.g., via switches, routers, etc.) that enter/exit a network (e.g., north-south network traffic) and between network computing devices in the network (e.g., east-west network traffic). In present packet-switched network architectures, data is transmitted in the form of network packets between networked computing devices. At a high level, data is packetized into a network packet at one computing device and the resulting packet transmitted, via a transmission device (e.g., a network interface controller (NIC) of the computing device), to another computing device over a network.
Upon receipt of a network packet, the computing device typically performs some level of examination on at least a portion of the received network packet to determine what, if any, operations (e.g., drop the network packet, process/store at least a portion of the network packet, forward the network packet, etc.) are to be performed by the computing device. In some embodiments, the rules for determining which operation(s) are to be performed can be relatively simple, such as Layer-2 switching based on readily identifiable header information (e.g., a destination media access controller (MAC) address, a virtual local area network (VLAN) tag, etc.), or more complex based upon Layer-3 routing, or an even deeper network packet inspection. However, the more complex the filtering/inspection process, coupled with higher connection rates, the more processing (e.g., central processing unit (CPU)) cores are typically required to process/inspect the received network packets. The excessive usage of the additional processor cores can be costly for users leveraging cloud services that charge the user for use of their CPU cores. Such excessive CPU core usage can also prove costly for cloud providers for which such operations are being performed internally and are not charged back to the user, as those used cores could otherwise be rented or sold during that period of time.